package com.example.zyghfeedback;


import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;

import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;

import java.util.ArrayList;
import java.util.List;


/**
 * 图片预览界面
 * @author summer
 *
 */
public class PhotoActivity extends Activity
{

    private ArrayList<View> listViews = null;

    private ViewPager pager;

    private MyPageAdapter adapter;

    private int count;

    public List<Bitmap> bmp = new ArrayList<Bitmap>();

    public List<String> drr = new ArrayList<String>();

    public List<String> del = new ArrayList<String>();

    public int max;

    RelativeLayout photo_relativeLayout;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_photo);

        photo_relativeLayout = (RelativeLayout)findViewById(R.id.photo_relativeLayout);
        photo_relativeLayout.setBackgroundColor(0x70000000);

        for (int i = 0; i < Bimp.bmp.size(); i++ )
        {
            bmp.add(Bimp.bmp.get(i));
        }
        for (int i = 0; i < Bimp.drr.size(); i++ )
        {
            drr.add(Bimp.drr.get(i));
        }
        max = Bimp.max;

        Button photo_bt_exit = (Button)findViewById(R.id.photo_bt_exit);
        photo_bt_exit.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                finish();
            }
        });
        Button photo_bt_del = (Button)findViewById(R.id.photo_bt_del);
        photo_bt_del.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                if (listViews.size() == 1)
                {
                    Bimp.bmp.clear();
                    Bimp.drr.clear();
                    Bimp.max = 0;
                    FileUtils.deleteDir();
                    finish();
                }
                else
                {
                    String newStr = drr.get(count).substring(drr.get(count).lastIndexOf("/") + 1,
                        drr.get(count).lastIndexOf("."));
                    bmp.remove(count);
                    drr.remove(count);
                    del.add(newStr);
                    max-- ;
                    pager.removeAllViews();
                    listViews.remove(count);
                    adapter.setListViews(listViews);
                    adapter.notifyDataSetChanged();
                }
            }
        });
        Button photo_bt_enter = (Button)findViewById(R.id.photo_bt_enter);
        photo_bt_enter.setOnClickListener(new View.OnClickListener()
        {

            public void onClick(View v)
            {

                Bimp.bmp = bmp;
                Bimp.drr = drr;
                Bimp.max = max;
                for (int i = 0; i < del.size(); i++ )
                {
                    FileUtils.delFile(del.get(i) + ".JPEG");
                }
                finish();
            }
        });

        pager = (ViewPager)findViewById(R.id.viewpager);
        pager.setOnPageChangeListener(pageChangeListener);
        for (int i = 0; i < bmp.size(); i++ )
        {
            initListViews(bmp.get(i));//
        }

        adapter = new MyPageAdapter(listViews);// 构造adapter
        pager.setAdapter(adapter);// 设置适配器
        Intent intent = getIntent();
        int id = intent.getIntExtra("ID", 0);
        pager.setCurrentItem(id);
    }

    private void initListViews(Bitmap bm)
    {
        if (listViews == null) listViews = new ArrayList<View>();
        ImageView img = new ImageView(this);// 构造textView对象
        img.setBackgroundColor(0xff000000);
        img.setImageBitmap(bm);
        img.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        listViews.add(img);// 添加view
    }

    private ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener()
    {

        public void onPageSelected(int arg0)
        {// 页面选择响应函数
            count = arg0;
        }

        public void onPageScrolled(int arg0, float arg1, int arg2)
        {// 滑动中。。。

        }

        public void onPageScrollStateChanged(int arg0)
        {// 滑动状态改变

        }
    };

    class MyPageAdapter extends PagerAdapter
    {

        private ArrayList<View> listViews;// content

        private int size;// 页数

        public MyPageAdapter(ArrayList<View> listViews)
        {// 构造函数
         // 初始化viewpager的时候给的一个页面
            this.listViews = listViews;
            size = listViews == null ? 0 : listViews.size();
        }

        public void setListViews(ArrayList<View> listViews)
        {// 自己写的一个方法用来添加数据
            this.listViews = listViews;
            size = listViews == null ? 0 : listViews.size();
        }

        public int getCount()
        {// 返回数量
            return size;
        }

        public int getItemPosition(Object object)
        {
            return POSITION_NONE;
        }

        public void destroyItem(View arg0, int arg1, Object arg2)
        {// 销毁view对象
            ((ViewPager)arg0).removeView(listViews.get(arg1 % size));
        }

        public void finishUpdate(View arg0)
        {}

        public Object instantiateItem(View arg0, int arg1)
        {// 返回view对象
            try
            {
                ((ViewPager)arg0).addView(listViews.get(arg1 % size), 0);

            }
            catch (Exception e)
            {}
            return listViews.get(arg1 % size);
        }

        public boolean isViewFromObject(View arg0, Object arg1)
        {
            return arg0 == arg1;
        }

    }
}
